#pragma once

#include "Token.hpp"

namespace cal
{

class TokenStream
{
public:
    TokenStream(std::istream& is);
    ~TokenStream() = default;

public:
    bool eof() const;
    Token get();
    Token peek();  

private:
    std::istream& _is;
    bool          _eof;
    bool          _full;
    Token         _buffer;
};

}   // namespace cal
